package ru.kreda.webapp.client.mvp;

import ru.kreda.webapp.client.logic.SampleForm1Activity;
import ru.kreda.webapp.client.logic.OrderListActivity;
import ru.kreda.webapp.client.place.SampleForm1Place;
import ru.kreda.webapp.client.place.OrderListPlace;

import com.google.gwt.activity.shared.Activity;
import com.google.gwt.activity.shared.ActivityMapper;
import com.google.gwt.place.shared.Place;
import com.google.inject.Inject;
import com.google.inject.Provider;

/**
 * Основной {@link ActivityMapper} приложения. Реагирует на все {@link Place},
 * предназначенные для отображения в главной части экрана.
 */
public class AppActivityMapper implements ActivityMapper {

	@Inject
	SampleForm1Activity sampleForm1Activity;
	@Inject
	Provider<OrderListActivity> settingsActivityProvider;

	@Override
	public Activity getActivity(Place place) {
		if (place instanceof SampleForm1Place) {
			return sampleForm1Activity;
		}
		if (place instanceof OrderListPlace) {
			return settingsActivityProvider.get().withPlace((OrderListPlace) place);
		}
		return null;
	}
}
